协方差 - 快速入门
By Ruben Geert van den Berg under 因子分析 & 统计学A-Z
- 什么是协方差?
- 协方差还是相关系数?
- 样本协方差公式
- 协方差计算示例
- 用于计算协方差的软件
什么是协方差?
协方差(Covariance)本质上是一个未标准化的相关系数(correlation)。也就是说,协方差是一个数字,它表明两个变量在多大程度上是线性相关的。与 (Pearson) 相关系数(Pearson correlation coefficient) 相比,协方差取决于所涉及的两个变量的尺度,以它们的标准差表示。
下图以散点图的形式可视化了一些相关系数和协方差。
x1 和 y1 基本不相关。协方差和相关系数都接近于零;
x2 和 y2 关系密切,但根本不是线性的。协方差和相关系数均为零。
x3 和 y3 呈负相关。协方差和相关系数均为负;
x4 和 y4 呈正相关。协方差和相关系数均为正;
x5 和 y5 呈强正相关。因为它们与 x4 和 y4 具有相同的标准差,所以相关系数和协方差都会增加;
x6 和 y6 与 x5 和 y5 相同,只是它们的标准差为 1.0 而不是 2.0。这使协方差缩小了 4.0 倍,但不影响相关系数。
比较图和
强调协方差与尺度有关,而相关系数则无关。这可能会让您想知道,为什么我总是计算协方差而不是相关系数?
协方差还是相关系数?
首先,协方差和相关系数之间的精确关系由下式给出:
\[S_{xy} = r_{xy} \cdot s_x \cdot s_y\]
其中
- \(S_{xy}\) 表示变量 \(X\) 和 \(Y\) 之间的(样本)协方差;
- \(r_{xy}\) 表示 \(X\) 和 \(Y\) 之间的 (Pearson) 相关系数;
- \(s_x\) 和 \(s_y\) 表示 \(X\) 和 \(Y\) 的(样本)标准差。
此公式表明,协方差可以看作是由所涉及的 2 个变量的标准差的乘积“加权”的相关系数:在其他条件相同的情况下,较大的标准差会导致较大的协方差。
对于比较变量对之间的关联,此功能可能是可取的。只有在所有变量都以相同的尺度测量时,例如美元、秒或千克,这才有意义。一些需要协方差的分析如下:
Cronbach’s alpha 通常是根据协方差而不是相关系数计算的。这是因为尺度得分是根据未标准化变量的总和或平均值计算的。因此,具有较大标准差的变量对尺度得分的影响更大。这就是为什么此类变量之间的关联在 Cronbach’s alpha 的计算中也具有更大的权重。
在 因子分析 中,有时会分析协方差矩阵而不是相关矩阵。如果是这样,则变量之间的关联对因子解的影响更大,因为这些变量具有更大的标准差。
一些分析需要满足亚群体的等协方差矩阵的假设。一个示例是 MANOVA,其中 Box 检验(基本上是 Levene’s 检验 的多元扩展)通常用于检验此假设。
有点令人惊讶的是,ANCOVA - 意思是 an alysis of cova riance - 不涉及计算协方差。
所以这些是一些涉及协方差的分析。那么这些是如何计算的呢?好吧,要使用哪个公式取决于您要分析哪种类型的数据。
样本协方差公式
如果您的数据包含来自更大群体的样本(通常是这种情况),则样本协方差的计算公式为
\[S_{xy} = \frac{\sum\limits_{i = 1}^N(X_i - \overline{X})(Y_i - \overline{Y})}{N - 1}\]
其中
- \(S_{xy}\) 表示变量 \(X\) 和 \(Y\) 之间的(样本)协方差;
- \(\) 和 \(\) 表示 \(X\) 和 \(Y\) 的样本均值;
- \(N\) 表示总样本大小。
现在让我们通过在计算示例中使用此公式来掌握它。
协方差计算示例
下表包含 10 个婴儿在出生时 (X) 和 12 个月大时 (Y) 的体重(以克为单位)。X 和 Y 之间的协方差是多少?
ID | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
X | 3777 | 3279 | 3760 | 3579 | 4138 | 3067 | 3438 | 4059 | 4493 | 3517 |
Y | 8695 | 7844 | 9532 | 8807 | 9537 | 7073 | 8873 | 11465 | 11837 | 8604 |
首先,
- 样本大小为 \(N\) = 10,平均值为
- \(\) = 3711 且
- \(\) = 9227。
因此,
\[S_{xy} = \frac{(3777 - 3711)\cdot(8695 - 9227)\;+\;...\;+\;(3517 - 3711)\cdot(8604 - 9227)}{10 - 1}\]
\[S_{xy} = \frac{66 \cdot -532\;+\;...\;+\;-194 \cdot -623}{10 - 1}\]
\[S_{xy} = \frac{5189622}{10 - 1} = 576625\]
您可以在 此 Googlesheet 中查找整个计算过程,如下面部分所示。
总体协方差公式
如果您的数据包含您想要研究的整个总体,您可以将协方差计算为
\[\sigma_{xy} = \frac{\sum\limits_{i = 1}^N(X_i - \mu_x)(Y_i - \mu_Y)}{N}\]
其中
- \(_{xy}\) 表示变量 \(X\) 和 \(Y\) 之间的(总体)协方差;
- \(_x\) 和 \(_y\) 表示 \(X\) 和 \(Y\) 的总体均值;
- \(N\) 表示总体大小。
用于计算协方差的软件
样本和总体协方差都可以轻松地在 Googlesheets 和 Excel 中计算。此 Googlesheet (如下面部分所示)包含几个示例。
可以很容易地从 SPSS 中获得几个变量的完整协方差矩阵。但是,SPSS 中的“协方差(covariance)”始终是指样本协方差,因为 SPSS 完全没有总体协方差。对于一个“统计软件包(statistical package)”来说,这非常糟糕。但无论如何:唯一的基于菜单的选项是 A nalyze C orrelate
B ivariate,如下图所示。
但是,一个更好的选择是使用 SPSS 语法,就像我们在 SPSS 中的 Cronbach’s Alpha 中所做的那样。这更快,并且可以生成一个更好的表格布局,如下所示。
这里需要注意两点:
就像相关矩阵一样,协方差矩阵是对称的:X 和 Y 之间的协方差显然等于 Y 和 X 之间的协方差。
主对角线包含每个变量与其自身的协方差。这些只是我们变量的方差(标准差的平方)。最后一点意味着我们可以从协方差矩阵计算相关矩阵,但不能反过来。例如,我们前 2 个变量之间的相关性为
\[r_{xy} = \frac{576625}{\sqrt{183629} \cdot \sqrt{2170571}} = 0.913\]